<?php
namespace Amis\form;
class Formula extends FormItem
{
    public string $type = 'formula';

    /**
     * 应用的公式
     * @param string $formula 表达式
     * @return $this
     */
    public function formula(string $formula)
    {
        $this->formula = $formula;
        return $this;
    }

    /**
     * 公式作用条件
     * @param string $condition 表达式
     * @return $this
     */
    public function condition(string $condition)
    {
        $this->condition = $condition;
        return $this;
    }

    /**
     * 初始化时是否设置
     * @param bool $initSet
     * @return $this
     */
    public function initSet(bool $initSet = true)
    {
        $this->initSet = $initSet;
        return $this;
    }

    /**
     * 观察公式结果，如果计算结果有变化，则自动应用到变量上
     * @param bool $autoSet
     * @return $this
     */
    public function autoSet(bool $autoSet = true)
    {
        $this->autoSet = $autoSet;
        return $this;
    }

    /**
     *    定义个名字，当某个按钮的目标指定为此值后，会触发一次公式应用。这个机制可以在 autoSet 为 false 时用来手动触发
     * @param bool $id
     * @return $this
     */
    public function id(bool $id = true)
    {
        $this->id = $id;
        return $this;
    }
}